PREFIX		=		arm-elf-
PROJECT		=		binaries.lib
BINFILES	= 		$(foreach dir,.,$(notdir $(wildcard $(dir)/*.bin)))
BINS		= 		$(BINFILES:.bin=.o)

OBJCOPY		=		$(PREFIX)objcopy
AR		=		$(PREFIX)ar
RM		=		rm -f

all : $(PROJECT)

$(PROJECT) :
	@-$(RM) *.h
	@echo \#ifndef BINARIES_H > binaries.h
	@echo \#define BINARIES_H >> binaries.h
	@make --no-print-directory $(BINS)
	@echo $(PROJECT)
	@$(AR) -rcs $(PROJECT) $(BINS)
	@echo \#endif >> binaries.h
	@-$(RM) *.o

%.o : %.bin
	@echo $(notdir $<)
	@cp $(<) $(*).tmp
	@$(OBJCOPY) -I binary -O elf32-littlearm -B arm \
	--rename-section .data=.rodata,readonly,data,contents,alloc \
	--redefine-sym _binary_$*_tmp_start=$*\
	--redefine-sym _binary_$*_tmp_end=$*_end\
	--redefine-sym _binary_$*_tmp_size=$*_size\
	$(*).tmp $(@)
	@echo "extern const u16" $(notdir $(*))"[];" >> binaries.h
	@rm $(*).tmp

.PHONY : clean

clean :
	@echo cleaning...
	@-$(RM) *.h *.lib
